/**
 * Исключение используется в тех случаях, когда аргументы конструктора содержат
 * некорректные значения, и объект с такими параметрами создать нельзя.
 * Является неперехватываемым исключением, так как нарушаются инварианты класса.
 */

#ifndef _ILLEGALARGUMENTEXCEPTION_H
#define	_ILLEGALARGUMENTEXCEPTION_H

#include <string>
#include "RuntimeException.h"

namespace etu {
namespace common {

class IllegalArgumentException : public RuntimeException {
public:
    IllegalArgumentException(const char* message) throw() : RuntimeException(message) {}
    IllegalArgumentException(std::string message) throw() : RuntimeException(message) {}
    IllegalArgumentException(const IllegalArgumentException& orig) throw() : RuntimeException(orig) {}
    virtual ~IllegalArgumentException() throw() {}
};

}
}

#endif	/* _ILLEGALARGUMENTEXCEPTION_H */

